package com.jhh.pay.heli.service;

import com.jhh.pay.heli.bean.HttpWrapper;
import com.jhh.pay.heli.bean.pay.OrderPayStateHto;
import com.jhh.pay.heli.bean.pay.PayForPersonHto;
import com.jhh.pay.heli.bean.pay.SinglePayForPersonResult;
import com.jhh.pay.heli.bean.sign.PaySign;
import com.jhh.pay.heli.bean.sign.WithholdSign;
import com.jhh.pay.heli.bean.withhold.OrderWithholdStateHto;
import com.jhh.pay.heli.bean.withhold.SingleWithholdResult;
import com.jhh.pay.heli.bean.withhold.WithholdHto;

/**
 * Created by zhangqi on 2017/12/4.
 */
public interface HeLiPayService {

    /**
     * 单笔代付
     * @param payForPerson
     * @return
     */
    HttpWrapper<SinglePayForPersonResult> payForPerson(PayForPersonHto payForPerson, PaySign paySign);

    /**
     * 查询代付订单状态
     * @param orderStateHto
     * @return
     */
    HttpWrapper<SinglePayForPersonResult> findPayOrderState(OrderPayStateHto orderStateHto, PaySign paySign);

    /**
     * 单笔代扣
     * @param withholdHto
     * @param withholdSign
     * @return
     */
    HttpWrapper<SingleWithholdResult> withholdSingle(WithholdHto withholdHto, WithholdSign withholdSign);

    /**
     * 单笔代扣查询
     * @param orderWithholdStateHto
     * @param withholdSign
     * @return
     */
    HttpWrapper<SingleWithholdResult> findWithholdOrderState(OrderWithholdStateHto orderWithholdStateHto,WithholdSign withholdSign);

    /**
     * 回调结果解析
     * @param singleWithholdResult
     * @param withholdSign
     * @return
     */
    HttpWrapper<SingleWithholdResult> WithholdCallBackResult(SingleWithholdResult singleWithholdResult,WithholdSign withholdSign);
}
